package com.xl333.util;

/**
 * @author 七月的狮子
 * @date 2020/5/20
 */
public class LetterUtil {

    /**
     * 第一个首字母大写的驼峰命名转换
     * @param str
     * @return
     */
    public static String firstUpperHump(String str){
        if(str.indexOf('_') <= 0){
            StringBuilder builder = new StringBuilder();
            builder.append(Character.toUpperCase(str.charAt(0)));
            builder.append(str.substring(1));
            return builder.toString();
        }
        return upperHump(str, false);
    }

    /**
     * 第二个首字母大写的驼峰命名转换
     * @param str
     * @return
     */
    public static String secondUpperHump(String str){
        if(str.indexOf('_') <= 0){
            return str;
        }
        return upperHump(str, true);
    }

    /**
     * 驼峰命名转换
     * @param str
     * @param isSecondUpper 是否第二个单词字母开始转换
     * @return
     */
    private static String upperHump(String str, boolean isSecondUpper){
        String [] strArray = str.split("_");
        StringBuilder builder = new StringBuilder();
        for(int i = 0;i < strArray.length;i++){
            String s = strArray[i];
            if(i == 0 && isSecondUpper){
                builder.append(s);
            }else {
                builder.append(Character.toUpperCase(s.charAt(0)));
                builder.append(s.substring(1));
            }
        }
        return builder.toString();
    }

}
